<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>

<body>
  <script>
    // 函数递归：
    // 如果一个函数在内部就可以调用其本身，那么这个函数就是递归函数
    // ——>简单理解：函数内部自己调用自己，这个函数就是递归函数
    // ——>递归函数的作用和循环效果类似
    // ——>由于递归很容易发生 "栈溢出" 错误（stack overflow），所以必须要加退出条件 return
    /*
    function fn() {
      fn()  // 死递归（死循环）
    }
    fn() 
    */

    let i = 1
    // fn就是递归函数
    function fn() {
      console.log(`这是第${i}次调用`)
      if (i >= 6) {
        return
      }
      i++
      fn()  // 函数内部自己调用自己
    }
    fn()
  </script>
</body>

</html>